package com.zmn.oms.persistence.interfaces.conf.reply;

import com.zmn.common.dto.StatusDTO;
import com.zmn.oms.model.entity.conf.reply.ReplyQuestion;
import com.zmn.oms.model.entity.conf.reply.ReplyQuestionQuery;

import java.util.List;


/**
 * 描述: 回访内容表数据库访问
 *
 * @author tanghongjun
 * @since 2020-04-14 11:27:25
 **/
public interface ReplyQuestionDao {
    /**
     * 描述: 根据id查询数据
     *
     * @param questionId id
     * @return ReturnVisitQuestion
     * @author tanghongjun
     * @since 2020-04-14 11:27:25
     **/
    ReplyQuestion findById(Integer questionId);

    /**
     * 查询最大的排序
     *
     * @return
     */
    Integer findMaxSort();

    /**
     * 描述: 统计条数
     *
     * @param query
     * @return Integer
     * @author tanghongjun
     * @since 2020-04-14 11:27:25
     **/
    Integer countByQuery(ReplyQuestionQuery query);

    /**
     * 描述: 按条件查询数据 支持分页
     *
     * @param query 查询对象
     * @return List<ReturnVisitQuestion>
     * @author tanghongjun
     * @since 2020-04-14 11:27:25
     **/
    List<ReplyQuestion> listPageByQuery(ReplyQuestionQuery query);

    /**
     * 描述: 按条件查询数据 不支持分页
     *
     * @param query 查询对象
     * @author tanghongjun
     * @since 2020-04-14 11:27:25
     **/
    List<ReplyQuestion> listByQuery(ReplyQuestionQuery query);

    /**
     * 描述: 根据id修改数据 id为必传
     *
     * @param replyQuestion 待修改数据
     * @return java.lang.Integer
     * @author tanghongjun
     * @since 2019/11/12
     **/
    Integer updateReturnVisitQuestionByKey(ReplyQuestion replyQuestion);

    /**
     * 批量更新状态
     *
     * @param dto 条件
     * @return
     */
    int updateStatusBatch(StatusDTO dto);

    /**
     * 更新排序
     *
     * @param replyQuestion 条件
     * @return
     */
    Integer updateSortKey(ReplyQuestion replyQuestion);

    /**
     * 更新回访问题首字母
     * @param replyQuestion
     * @return
     */
    Integer updateFirstLetterByKey(ReplyQuestion replyQuestion);

    /**
     * 描述: 新增数据
     *
     * @param replyQuestion 待新增数据
     * @return java.lang.Integer 主键key
     * @author tanghongjun
     * @since 2019/11/12
     **/
    Integer insert(ReplyQuestion replyQuestion);

}
